/**
\file IO.h
*/
#pragma once
#include <lostlbase.h>
#include "System.h"

namespace lo {

	/**
	This class is used to obtain various pieces of information about the system we are running on.
	*/
	class Info
	{
	public:
		/** Returns the default users default paper size: 1 = US Letter, 5 = US legal, 8 = A3, 9 = A4 */
		static int GetDefaultPaperSize();
		/** Returns true if the current OS is windows 2000 or greater. */
		static bool Is2000OrGreater();
		/** Returns true if a metric country. Right now only the U.S. returns false.*/
		static bool IsMetric();
		/** Returns true if the OS is a part of the NT family, Windows XP, 7, 8, Server 2003, 2008, 2012, etc... */
		static bool IsNtFamily();
		/** Returns true if the process this code is running in is 32 bits. */
		static bool Is32BitOS();
		/** Returns true if the process this code is running in is 64 bits. */
		static bool Is64BitOS();
		/** Returns true if the OS this code is running on is Windows XP or greater. */
		static bool IsXPorGreater();
		/** Returns true if this is an X64 machine */
		static bool IsX64OS();
		/** Is x86 32 bit OS */
		static bool IsX86OS();
	private:
		static void InitUtils();
		static bool m_init;
		static OSVERSIONINFO	m_osvi;
		static SYSTEM_INFO		m_sysinf;
	};

}